如果今天,你想限制使用的人存取你的方法,
我們可以用幾種方式,
我們來比較一下這幾個之間的差別。
系統預設定義是public,
是一種開放的、誰都可以存取的方式。
class Cat
def eat
puts "eating..."
end
end
kitty = Cat.new
kitty.eat #eating...
像這樣,kitty可以直接提取eat這個方法。
較public不自由,
不可以直接存取,
class Cat
protected
def eat
puts "eating..."
end
end
kitty = Cat.new
kitty.eat #錯誤訊息
但不限定有沒有明確的接收者,
所以用以下兩個方法都可以成功執行。
class Cat
def do_eat
eat #沒有接收者
self.eat #有接收者
end
protected
def eat
puts "eating..."
end
end
kitty = Cat.new
kitty.do_eat
明天我們再繼續探討Private,明天見!
Ruby
public
protected